$conf
у цьому випадку.main.php файл шаблону
main.php
охоплює більшість сторінок, які ви побачите при перегляді встановленої DokuWiki; це включає всі “дії DokuWiki”, перелічені в менеджері конфігурацій.
Багато з описаного тут функціоналу також застосовується до detail.php
та mediamanager.php
, тобто все до першого div
плюс html_msgarea()
повинно бути спільним для всіх файлів шаблону.
Мінімум...
Ось мінімальні вимоги для того, щоб сторінка відображалася і взаємодіяла належним чином для вашого шаблону.
Функціональність
Зазвичай варто починати сторінки шаблону з оголошення doctype та тега <html>, який повідомляє браузеру, якою мовою і в якому напрямку текст використовує сторінки вікі.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction']?>">
Перший фактичний виклик PHP здійснюється до tpl_metaheaders()
, який охоплює CSS і JavaScript, необхідні та надані DokuWiki, а також все, що зібрано з style.ini
.
<head> <?php tpl_metaheaders()?>
Далі йде tpl_pagetitle()
, який використовує ідентифікатор сторінки (або, за бажанням, перший заголовок) як заголовок сторінки разом із заголовком вашої вікі1). Має сенс оголосити набір символів безпосередньо перед цим:
<meta charset="UTF-8" /> <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title>
Щоб додати фавікон, ви можете використовувати tpl_favicon()
, який за замовчуванням використовуватиме файл favicon.ico
з директорії images
шаблону. Але це можна змінити, завантаживши цей файл у wiki
або кореневий простір імен вашої вікі через менеджер медіафайлів.
<?php echo tpl_favicon(array('favicon')) ?> </head>
Коли ви готові до відображення, вам потрібно додати tpl_classes()
(яка також включає клас dokuwiki
) десь у верхній частині, щоб ваша сторінка коректно працювала з плагінами, які використовують стилі. Ідентифікатор dokuwiki__top
потрібен для функції “Повернутися наверх”.
<body> <div class="<?php echo tpl_classes() ?>" id="dokuwiki__top">
Ваш шаблон повинен мати узгоджений заголовок, який відображає назву вікі та слоган:
<h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1> <?php if ($conf['tagline']): ?> <p><?php echo $conf['tagline'] ?></p> <?php endif ?>
Вам потрібні всі кнопки/посилання для утиліт за допомогою tpl_action(), щоб зробити вашу вікі повністю функціональною. Ось всі кнопки, надані за замовчуванням у стандартному шаблоні.
<div class="actions"> <?php tpl_searchform()?> <?php tpl_action('admin')?> <?php tpl_action('profile')?> <?php tpl_action('register')?> <?php tpl_action('login')?> <?php tpl_action('edit')?> <?php tpl_action('revisions')?> <?php tpl_action('backlink')?> <?php tpl_action('subscribe')?> <?php tpl_action('revert')?> <?php tpl_action('recent')?> <?php tpl_action('media')?> <?php tpl_action('index')?> <?php tpl_action('top')?> </div>
Тепер уявіть себе в області контенту вашої сторінки. Спершу вам потрібно викликати функцію відображення помилок, html_msgarea()
. Це дозволяє вам бачити, наприклад, помилки конфігурації в DokuWiki, коли вони виникають, або помилки рендерингу плагінів, або переглядати результати do=check
, коли ви додаєте це до кінця URL на вашому сайті.
<?php html_msgarea()?>
Деякі дрібниці - це “хлібні крихти” та посилання “ви тут”. Ви можете додати їх будь-де в області контенту, у будь-якому порядку за допомогою tpl_breadcrumbs()
та tpl_youarehere()
, і вони цілком необов'язкові та залишаються на ваш розсуд. Якщо ви розробляєте шаблон для загального використання, ви захочете підтримувати обидва, щоб ваші кінцеві користувачі могли обирати.
<?php if ($conf['breadcrumbs']): ?> <p><?php tpl_breadcrumbs() ?></p> <?php endif ?> <?php if ($conf['youarehere']): ?> <p><?php tpl_youarehere() ?></p> <?php endif ?>
Цей момент кульмінації всього процесу - це відображення вмісту сторінки; це всього лише один виклик tpl_content()
, і він використовується для всіх дій — перегляду, редагування, навігації по індексу, пошуку та будь-якої сторінки з формою.
<?php tpl_content(); ?>
Наближаючись до кінця розділу контенту, ви можете додати інформацію про те, коли останній раз змінювалась сторінка і хто це зробив, а також під яким користувачем ви зараз увійшли та яка ліцензія використовується у вашій вікі:
<p> <?php tpl_pageinfo()?><br /> <?php tpl_userinfo()?><br /> <?php tpl_license()?> </p>
Багато шаблонів відображають бічну панель, коли установлена опція конфігурації бічної панелі. Це відобразить вміст сторінки з назвою “sidebar”:
<?php tpl_include_page($conf['sidebar'], 1, 1) ?>
І нарешті, вам необхідно цю функцію, щоб забезпечити належну функціональність пошуку та здатність знаходити ваші сторінки:
<?php tpl_indexerWebBug(); ?> </div> </body> </html>
Altogether now...
У нас є невеликий зразок, робочий main.php
для шаблону, який виглядає наступним чином:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $conf['lang']?>" lang="<?php echo $conf['lang']?>" dir="<?php echo $lang['direction']?>"> <head> <?php tpl_metaheaders()?> <title><?php tpl_pagetitle()?> - <?php echo hsc($conf['title'])?></title> <?php echo tpl_favicon(array('favicon')) ?> </head> <body> <div class="<?php echo tpl_classes(); ?>" id="dokuwiki__top"> <h1><?php tpl_link(wl(),$conf['title'],'accesskey="h" title="[H]"') ?></h1> <?php if ($conf['tagline']): ?> <p><?php echo $conf['tagline'] ?></p> <?php endif ?> <div class="actions"> <?php tpl_searchform()?> <?php tpl_action('admin')?> <?php tpl_action('profile')?> <?php tpl_action('register')?> <?php tpl_action('login')?> <?php tpl_action('edit')?> <?php tpl_action('revisions')?> <?php tpl_action('backlink')?> <?php tpl_action('subscribe')?> <?php tpl_action('revert')?> <?php tpl_action('recent')?> <?php tpl_action('media')?> <?php tpl_action('index')?> <?php tpl_action('top')?> </div> <?php html_msgarea()?> <?php if ($conf['breadcrumbs']): ?> <p><?php tpl_breadcrumbs() ?></p> <?php endif ?> <?php if ($conf['youarehere']): ?> <p><?php tpl_youarehere() ?></p> <?php endif ?> <?php tpl_content(); ?> <p> <?php tpl_pageinfo()?><br /> <?php tpl_userinfo()?><br /> <?php tpl_license()?> </p> <?php tpl_include_page($conf['sidebar'], 1, 1) ?> <?php tpl_indexerWebBug(); ?> </div> </body> </html>
Тепер у вас є всі кнопки, а також поле пошуку, і цього достатньо для розробки шаблону.
Вигляд і відчуття
Пояснення стилів для:
- Звичайного перегляду
- Редагування
- Навігації по індексу (або того, що зазвичай називають навігацією «картою сайту»)
- Пошуку
- Сторінок типу форми, таких як реєстрація, профіль, адміністрування, конфігурація та інше.
- Тут повинна бути інформація щодо таблиць стилів, оскільки всі вони потребують інформації зі стилів.
Джерело
Джерело файлу main.php
шаблону 'dokuwiki' можна знайти за посиланням lib/tpl/dokuwiki/main.php. main.php шаблону Starter містить корисні коментарі.
Див. також
- mediamanager.php – файл шаблону для вибору медіафайлів
- detail.php – файл шаблону для сторінки детальної інформації про зображення